#pragma once

#include <Plugin.h>
#include <vector>
#include <string>

class PluginSystem : Plugin
{
public:
	PluginSystem();
	virtual ~PluginSystem();

	// initialize plugin
	virtual int Init();

	// shutdown plugin
	virtual int Shutdown();

	std::string GetName();
	std::string GetUser();
	std::string GetOS();
	std::string GetIP();

	std::string GetInfo();

	std::vector<std::string> GetSoftList();
};

extern "C" __declspec(dllexport) void *CreatePlugin()
{
	return new PluginSystem();
}

extern "C" __declspec(dllexport) void ReleasePlugin(void *plugin)
{
	delete static_cast<PluginSystem*>(plugin);
}